<template>
        <tit title="欢迎登录"></tit>
    <div>
        <van-form @submit="onSubmit">
            <van-cell-group inset>
                <van-field v-model="username" name="username" label="手机号" placeholder="请输入手机号"
                    :rules="[{ pattern, message: '请填写用户名' }]" />
                <van-field v-model="password" type="password" name="password" label="密码" placeholder="密码"
                    :rules="[{ required: true, message: '请填写密码' }]" />

                <van-field v-model="sms" center clearable label="短信验证码" placeholder="请输入短信验证码"
                    :rules="[{ required: true, message: '请填写密码' }]">
                    <template #button>
                        <van-button size="small" type="primary" @click="gosms" :disabled="time > 0 ? true : false">{{
                            time > 0 ? '剩余' + time + '秒' : '发送验证码' }}</van-button>
                    </template>
                </van-field>
            </van-cell-group>
            <div style="margin: 16px;">
                <van-button round block type="primary" native-type="submit">
                    登录
                </van-button>
            </div>
        </van-form>
    </div>
</template>

<script setup>
import { ref } from 'vue';

const username = ref('');
const password = ref('');
let time = ref(0);
let timer;
let pattern = /^1[3-9]\d{9}$/;
let sms = ref([]);
let gosms = () => {
    sms.value = Math.floor(Math.random() * 100000);

    if (time.value) return

    time.value = 10;
    timer = setInterval(() => {
        time.value--
        if (time.value == 0) {
            clearInterval(timer);
        }
    }, 1000)
}

import { loginApi } from '@/api/api';
import { showSuccessToast, showFailToast } from 'vant';
import { useRouter } from 'vue-router';
let router=useRouter()

let onSubmit = () => {
    loginApi(username.value, password.value).then(res => {
        console.log('登录', res);
        if (res.data.code == 0) {
            showSuccessToast('登录成功');
            router.push('/index/home')
            localStorage.setItem('username',res.data.data.username);
            localStorage.setItem('token',res.data.data.token);
        }
        else {
            showFailToast('登录失败');
        }
    })
}

import tit from '@/components/tit.vue';

</script>

<style lang="scss" scoped></style>